import { NestFactory } from '@nestjs/core';
import { NestExpressApplication } from '@nestjs/platform-express';
import { join } from 'path';
// import { engine } from 'express-handlebars';
import { AppModule } from './app.module';
// import { handlebarsConfig } from './config/handlebars.config';
import * as hbs from 'hbs';
import { createUploadDir } from './utils/create-upload-dir';

async function bootstrap() {
  // 创建上传目录
  createUploadDir();
  const app = await NestFactory.create<NestExpressApplication>(AppModule);
  app.useStaticAssets(join(__dirname, '..', 'public')); // 静态资源地址访问方式：http://localhost:3000/style.css
  // 如果需要专门的图片目录
  app.useStaticAssets(join(__dirname, '..', 'uploads'), {
    prefix: '/uploads/', // 访问前缀
  });
  app.useStaticAssets(join(__dirname, '..', 'admin'), {
    prefix: '/admin/', // 访问前缀
  });
  // app.engine('hbs', engine(handlebarsConfig)); // 配置布局文件，一旦配置，就会自动启用无法关闭
  app.setBaseViewsDir(join(__dirname, '..', 'views'));
  app.setViewEngine('hbs');
  hbs.registerPartials(join(__dirname, '..', 'views/partials')); // 注册部分视图目录
  app.set('view options', { layout: false }); // 确保没有默认布局
  await app.listen(3000);
}
void bootstrap();
